diff --git a/cluster-autoscaler/utils/drain/drain.go b/cluster-autoscaler/utils/drain/drain.go
--- a/cluster-autoscaler/utils/drain/drain.go	(revision 92aa9a8d967a0883db7c87d354521059af7160ba)
+++ b/cluster-autoscaler/utils/drain/drain.go	(date 1665766332986)
@@ -18,6 +18,7 @@

 import (
 	"fmt"
+	"strings"
 	"time"

 	apiv1 "k8s.io/api/core/v1"
@@ -140,6 +141,18 @@
 				replicated = true
 			}
 		} else if pod_util.IsDaemonSetPod(pod) {
+			if strings.HasPrefix(pod.Namespace, "d8-") {
+				evictionEnabled := func(pod *apiv1.Pod) bool {
+					if val, ok := pod.Annotations["cluster-autoscaler.kubernetes.io/enable-ds-eviction"]; ok && val == "true" {
+						return true
+					}
+
+					return false
+				}(pod)
+				if !evictionEnabled {
+					continue
+				}
+			}
 			isDaemonSetPod = true
 			// don't have listener for other DaemonSet kind
 			// TODO: we should use a generic client for checking the reference.
